-
Notifications
You must be signed in to change notification settings - Fork 25.6k
Adjust ForkJoinPool prefix in HdfsClientThreadLeakFilter
#127534
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Changes "ForkJoinPool-" to "ForkJoinPool." in the Thread getName().startsWith() checks in HdfsClientThreadLeakFilter. This resolves the "There are still zombie threads that couldn't be terminated" errors in the Hdfs IT tests. Closes elastic#127290 Closes elastic#127289 Closes elastic#127288 Closes elastic#127287
|
Pinging @elastic/es-distributed-coordination (Team:Distributed Coordination) |
|
Out of curiosity, do you know why the test started failing recently? The hadoop version is the same between 9.0 and 9.1. So I wonder what else has change to cause the failures? |
They all seem to be openjdk21 builds, I wonder if the JDK changed the name of the ForkJoinPool threads? |
|
Does not look like JDK version related to me since the tests do not fail with JDK21 and 8.18. |
|
I've looked back at the JDK source and the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would consider using ForkJoinPool.commonPool-worker- as a prefix, to be consistent with the JDK/ with our own code (see TestContainersThreadFilter), but in any case this looks OK to me.
|
It looks like for some reason we've moved from using a specific See that when you create a But the common fork join pool does not have a I tried to reproduce it locally but I can't seem to get leaks from any fork join pool, so it's hard to pin down where hadoop is using it and why that behaviour changed. Hadoop seems to use both kinds of |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It would be nice to have an explanation for why this started failing recently, but being the common fork join pool those threads really could be coming from anywhere.
LGTM unless anyone thinks it's worth holding off until we have an explanation?
I trimmed down This fails with the Per the So it seems reasonable to filter the |
I think it's a safe thing to suppress. The use of the common pool could be coming from the JVM libraries. You could stick a breakpoint in the lazy initialisation perhaps? that might reveal where it's coming from. But if it's inconclusive I don't know if it's worth spending a lot of time on? |
The HdfsBlobContainer.writeToPath():265-267:
Note that Also it looks like there is a change in |
…#127534) Adds the ForkJoinPool.commonPool-worker- prefix to the Thread getName().startsWith() checks in HdfsClientThreadLeakFilter. This resolves the "There are still zombie threads that couldn't be terminated" errors in the Hdfs IT tests. Closes elastic#127290 Closes elastic#127289 Closes elastic#127288 Closes elastic#127287 (cherry picked from commit 4408e38)
💚 All backports created successfully
Questions ?Please refer to the Backport tool documentation |
…#127534) Adds the ForkJoinPool.commonPool-worker- prefix to the Thread getName().startsWith() checks in HdfsClientThreadLeakFilter. This resolves the "There are still zombie threads that couldn't be terminated" errors in the Hdfs IT tests. Closes elastic#127290 Closes elastic#127289 Closes elastic#127288 Closes elastic#127287 (cherry picked from commit 4408e38)
💚 All backports created successfully
Questions ?Please refer to the Backport tool documentation |
…127683) Adds the ForkJoinPool.commonPool-worker- prefix to the Thread getName().startsWith() checks in HdfsClientThreadLeakFilter. This resolves the "There are still zombie threads that couldn't be terminated" errors in the Hdfs IT tests. Closes #127676 Closes #127677 Closes #127678 Closes #127679 (cherry picked from commit 4408e38)
…#127534) Adds the ForkJoinPool.commonPool-worker- prefix to the Thread getName().startsWith() checks in HdfsClientThreadLeakFilter. This resolves the "There are still zombie threads that couldn't be terminated" errors in the Hdfs IT tests. Closes elastic#127290 Closes elastic#127289 Closes elastic#127288 Closes elastic#127287
…#127534) Adds the ForkJoinPool.commonPool-worker- prefix to the Thread getName().startsWith() checks in HdfsClientThreadLeakFilter. This resolves the "There are still zombie threads that couldn't be terminated" errors in the Hdfs IT tests. Closes elastic#127290 Closes elastic#127289 Closes elastic#127288 Closes elastic#127287 (cherry picked from commit 4408e38)
💚 All backports created successfully
Questions ?Please refer to the Backport tool documentation |
#128309) Adds the ForkJoinPool.commonPool-worker- prefix to the Thread getName().startsWith() checks in HdfsClientThreadLeakFilter. This resolves the "There are still zombie threads that couldn't be terminated" errors in the Hdfs IT tests. Closes #128305 Closes #128306 Closes #128307 Closes #128308 (cherry picked from commit 4408e38)
Adds the
ForkJoinPool.commonPool-worker-prefix to the ThreadgetName().startsWith()checks inHdfsClientThreadLeakFilterto pick up.commonPool-worker-Nthreads as well. This resolves the"There are still zombie threads that couldn't be terminated" errors in the Hdfs IT tests:
Closes #127290
Closes #127289
Closes #127288
Closes #127287